package org.ouwh.fw.threadpool;

public interface IThreadPool {
	/**
	 * free time setting, format:<BR>
	 * HH:mm-HH:mm;...;HH:mm-HH:mm
	 * 
	 */
	public void setFreeTime(String freeTime) throws Exception;

	public void setFreeTimeSize(int freeTimeSize);

	public void setBusyTimeSize(int busyTimeSize);

	public void setPoolName(String poolName);

	public void waitPut(IThreadPoolTask task, long timeout) throws Exception;

	public void initialize();

	public void put(IThreadPoolTask task) throws Exception;

	public void terminate();

	public boolean isAllThreadFree();

	public String getActiveTasksInfo();

	public int size();

	public int getFreeTimeSize();

	public int getBusyTimeSize();

	public int getFreeThreadCount();

}